U programskim jezicima i teoriji tipova, polimorfizam je snabdijevanje jednog interfejsa entitetima različitih tipova[1] ili korištenje jednog simbola za predstavljanje više različitih tipova.[2]
Najčešće prepoznate veće klase polimorfizma su:
Ad hoc polimorfizam: definira zajednički interfejs za proizvoljan skup individualno određenih tipova.
Parametarski polimorfizam: kada jedan ili više tipova nisu određeni imenom ili po apstraktnim simbolima mogu predstavljati bilo koji tip.
Subtyping (također se naziva podtipni polimorfizam ili inkluzijski polimorfizam): kada ime određuje instance više različitih klasa vezanih zajedničkom superklasom.[3]
^
Bjarne Stroustrup (19. 2. 2007). "Bjarne Stroustrup's C++ Glossary". polymorphism – providing a single interface to entities of different types.